From: Georges Basile Stavracas Neto Date: Tue, 9 Oct 2018 01:33:19 +0000 (-0300) Subject: st-shadow: Add a CoglFramebuffer argument X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~897^2^2~108 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=23d6d13d80ab81ba8c4b0aad9f1648684e1d0ec5;p=gnome-shell.git st-shadow: Add a CoglFramebuffer argument The last patch in the series, this one adapts StShadowHelper to received a CoglFramebuffer. This is where we first touch JavaScript with Cogl types, and as such, it depends on the latest Mutter. Earlier versions of Mutter didn't have its Mutter-Clutter GIR to generate types for various Cogl types. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/283 --- diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js index f5ba1c299..5e9eae2e2 100644 --- a/js/ui/screenShield.js +++ b/js/ui/screenShield.js @@ -2,6 +2,7 @@ const AccountsService = imports.gi.AccountsService; const Cairo = imports.cairo; +const Cogl = imports.gi.Cogl; const Clutter = imports.gi.Clutter; const Gio = imports.gi.Gio; const GLib = imports.gi.GLib; @@ -405,7 +406,9 @@ class ScreenShieldArrow extends St.Bin { let allocation = this._drawingArea.get_allocation_box(); let paintOpacity = this._drawingArea.get_paint_opacity(); - this._shadowHelper.paint(allocation, paintOpacity); + let framebuffer = Cogl.get_draw_framebuffer(); + + this._shadowHelper.paint(framebuffer, allocation, paintOpacity); } this._drawingArea.paint(); diff --git a/src/st/st-shadow.c b/src/st/st-shadow.c index 028240022..f3a22f034 100644 --- a/src/st/st-shadow.c +++ b/src/st/st-shadow.c @@ -276,6 +276,7 @@ st_shadow_helper_free (StShadowHelper *helper) /** * st_shadow_helper_paint: * @helper: a #StShadowHelper + * @framebuffer: a #CoglFramebuffer * @actor_box: the bounding box of the shadow * @paint_opacity: the opacity at which the shadow is painted * @@ -284,11 +285,12 @@ st_shadow_helper_free (StShadowHelper *helper) */ void st_shadow_helper_paint (StShadowHelper *helper, + CoglFramebuffer *framebuffer, ClutterActorBox *actor_box, guint8 paint_opacity) { _st_paint_shadow_with_opacity (helper->shadow, - cogl_get_draw_framebuffer (), + framebuffer, helper->pipeline, actor_box, paint_opacity); diff --git a/src/st/st-shadow.h b/src/st/st-shadow.h index 40c214958..8173f34f4 100644 --- a/src/st/st-shadow.h +++ b/src/st/st-shadow.h @@ -84,6 +84,7 @@ void st_shadow_helper_update (StShadowHelper *helper, ClutterActor *source); void st_shadow_helper_paint (StShadowHelper *helper, + CoglFramebuffer *framebuffer, ClutterActorBox *actor_box, guint8 paint_opacity);